def METHOD_NAME(file_name, include, NPROC=96):
  fine = False
  if(len(include)==2): fine = True
  suffix = "_".join([s.lower() for s in include])
  clusters, nested_loop = get_clusters_and_angles(file_name=file_name, fine=fine)
  if(clusters is None): return
  chunks = list(chunker(nested_loop, NPROC))
  tt = 0
  if(NPROC>1):
    argss = []
    for chunk in chunks:
      argss.append([clusters, chunk, file_name, include, False])
    stdout_and_results = easy_mp.pool_map(
      processes    = NPROC,
      fixed_func   = run_one,
      args         = argss,
      func_wrapper = "buffer_stdout_stderr")
    good_angles = []
    for result in stdout_and_results:
      good_angles.extend(result[1].good_angles)
    states = None # Undefined if multiprocessing is used
  else:
    t0 = time.time()
    args = [clusters, nested_loop, file_name, include, True]
    result = run_one(args)
    good_angles = result.good_angles
    states      = result.states
    tt = time.time()-t0
  if(states is not None):
    states.write(file_name="%s_%s.pdb"%(file_name[:-4],suffix))
  print("file_name, n_clusters, n_good_angles, total:", file_name, \
    len(clusters), len(good_angles), len(nested_loop), tt)
  sys.stdout.flush()
  easy_pickle.dump(
    file_name="%s_%s.pkl"%(file_name[:-4], suffix),
    obj=good_angles)