title: Ubuntu, cx_Freeze and multiprocessing.Manager() conflict in case "spawn" type processes
body: <h3>Env:</h3>
  
  <p>Ubuntu - 18.04<br>
  Python - 3.6.6<br>
  cx_Freeze - 6.1</p>
  
  <h3>Code:</h3>
  
  <p>Simple <strong>main_script.py</strong> file (example in repository - <a href="https://github.com/Yuriy-Leonov/cython_multiprocessing_issue" rel="noreferrer">https://github.com/Yuriy-Leonov/cython_multiprocessing_issue</a> )</p>
  
  <pre><code>import multiprocessing
  
  if __name__ == '__main__':
      print("step-1")
      multiprocessing.set_start_method("spawn")
      print("step-2")
      multiprocessing.freeze_support()
      print("step-3")
      manager = multiprocessing.Manager()
      print("step-4")
      s_dict = manager.dict()
      print("finish")
  </code></pre>
  
  <p>And <strong>setup.py</strong> (for cx_Freeze):</p>
  
  <pre><code>import cx_Freeze
  
  executables = [cx_Freeze.Executable("main_script.py")]
  
  cx_Freeze.setup(
      name="Example",
      options={
          "build_exe": {
              "replace_paths": [("*", "")]
          },
      },
      executables=executables
  )
  </code></pre>
  
  <h3>Issue:</h3>
  
  <p>After building executable file via command <code>python setup.py build</code> I ran it and console log contained following:</p>
  
  <pre><code>step-1
  step-2
  step-3
  step-1
  step-2
  step-3
  step-1
  step-2
  step-3
  ...
  </code></pre>
  
  <p>And infinite processes are spawned.<br>
  I understand that <code>multiprocessing.Manager()</code> should spawn "server" process. But can't get clue of current behaviorand and how to force it to create "shared dict"</p>
  
  <h3>Important:</h3>
  
  <p><code>multiprocessing.set_start_method("spawn")</code> can't be changed and required due to main program behavior.</p>
  
  <h3>Question:</h3>
  
  <p>How to achive of creating <code>manager.dict()</code> in current configuration?</p>
  
  <h3>PS:</h3>
  
  <p>There is no issue if run with regular <code>python &lt;filename&gt;</code>(obvious)</p>