code: def find_inouts_mp(voxel_grid, datapts, **kwargs):
      
      tol = kwargs.get('tol', 10e-8)
      num_procs = kwargs.get('num_procs', 4)
      with pool_context(processes=num_procs) as pool:
          filled = pool.map(partial(is_point_inside_voxel, ptsarr=datapts, tol=tol), voxel_grid)
      return filled
docs: Multi-threaded ins and outs finding (using multiprocessing)
  
      :param voxel_grid: voxel grid
      :param datapts: data points
      :return: in-outs