title: An attempt has been made to start a new process before the current process has finished its bootstrapping phase
body: <p>I am new to dask and I found so nice to have a module that makes it easy to get parallelization. I am working on a project where I was able to parallelize in a single machine a loop as<a href="https://github.com/muammar/mlchem/blob/master/mlchem/fingerprints/gaussian.py#L145" rel="noreferrer"> you can see here </a>. However, I would like to move over to <code>dask.distributed</code>. I applied the following changes to the class above: </p>
  
  <pre><code>diff --git a/mlchem/fingerprints/gaussian.py b/mlchem/fingerprints/gaussian.py
  index ce6a72b..89f8638 100644
  --- a/mlchem/fingerprints/gaussian.py
  +++ b/mlchem/fingerprints/gaussian.py
  @@ -6,7 +6,7 @@ from sklearn.externals import joblib
   from .cutoff import Cosine
   from collections import OrderedDict
   import dask
  -import dask.multiprocessing
  +from dask.distributed import Client
   import time
  
  
  @@ -141,13 +141,14 @@ class Gaussian(object):
           for image in images.items():
               computations.append(self.fingerprints_per_image(image))
  
  +        client = Client()
           if self.scaler is None:
  -            feature_space = dask.compute(*computations, scheduler='processes',
  +            feature_space = dask.compute(*computations, scheduler='distributed',
                                            num_workers=self.cores)
               feature_space = OrderedDict(feature_space)
           else:
               stacked_features = dask.compute(*computations,
  -                                            scheduler='processes',
  +                                            scheduler='distributed',
                                               num_workers=self.cores)
  
               stacked_features = numpy.array(stacked_features)
  </code></pre>
  
  <p>Doing so generates this error:</p>
  
  <pre><code> File "/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/multiprocessing/spawn.py", line 136, in _check_not_importing_main
      is not going to be frozen to produce an executable.''')
  RuntimeError:
          An attempt has been made to start a new process before the
          current process has finished its bootstrapping phase.
  
          This probably means that you are not using fork to start your
          child processes and you have forgotten to use the proper idiom
          in the main module:
  
              if __name__ == '__main__':
                  freeze_support()
                  ...
  </code></pre>
  
  <p>I have tried different ways of adding <code>if __name__ == '__main__':</code> without any success. This can be <a href="https://github.com/muammar/mlchem/tree/master/examples" rel="noreferrer">reproduced by running this example</a>. I would appreciate if anyone could help me to figure this out. I have no clue on how I should change my code to make it work. </p>
  
  <p>Thanks. </p>
  
  <p>Edit: The example is <code>cu_training.py</code>.</p>