code: def multi_p_run(tot_num, _func, worker, params, n_process):
      
      from multiprocessing import Process, Queue
      out_q = Queue()
      procs = []
  
      split_num = split_seq(list(range(0, tot_num)), n_process)
  
      print(tot_num, ">>", split_num)
  
      split_len = len(split_num)
      if n_process > split_len:
          n_process = split_len
  
      for i in range(n_process):
          _p = Process(target=_func,
                       args=(worker, split_num[i][0], split_num[i][1],
                             params, out_q))
          _p.daemon = True
          procs.append(_p)
          _p.start()
  
      try:
          result = []
          for i in range(n_process):
              result.append(out_q.get())
          for i in procs:
              i.join()
      except KeyboardInterrupt:
          print('Killing all the children in the pool.')
          for i in procs:
              i.terminate()
              i.join()
          return -1
  
      while not out_q.empty():
          print(out_q.get(block=False))
  
      return result
docs: Run _func with multi-process using params.