title: Multiprocessing on Windows breaks
body: <p>I develop with Python on Linux and have never really seen this sort of problem with Windows. I'm using the <code>multiprocessing</code> library to speed up computations, which works very well for me on Linux.</p>
  
  <p>On Windows, however, things don't run as smoothly:</p>
  
  <pre><code> * [INFO] Parsing 1 file using 2 threads
  
  Traceback (most recent call last):
    File "main.py", line 170, in &lt;module&gt;
      master = ParsingMaster(parser, list(input_file), output_list, threads=num_threads)
  Traceback (most recent call last):
    File "main.py", line 39, in __init__
    File "&lt;string&gt;", line 1, in &lt;module&gt;
      self.input_process.start()
    File "C:\Python26\lib\multiprocessing\forking.py", line 342, in main
    File "C:\Python26\lib\multiprocessing\process.py", line 104, in start
          self._popen = Popen(self)
  self = load(from_parent)
    File "C:\Python26\lib\multiprocessing\forking.py", line 239, in __init__
    File "C:\Python26\lib\pickle.py", line 1370, in load
      dump(process_obj, to_child, HIGHEST_PROTOCOL)
    File "C:\Python26\lib\multiprocessing\forking.py", line 162, in dump
      ForkingPickler(file, protocol).dump(obj)
    File "C:\Python26\lib\pickle.py", line 224, in dump
      return Unpickler(file).load()
      self.save(obj)
   File "C:\Python26\lib\pickle.py", line 858, in load
    File "C:\Python26\lib\pickle.py", line 331, in save
      self.save_reduce(obj=obj, *rv)
    File "C:\Python26\lib\pickle.py", line 419, in save_reduce
      dispatch[key](self)
    File "C:\Python26\lib\pickle.py", line 880, in load_eof
      save(state)
    File "C:\Python26\lib\pickle.py", line 286, in save
      f(self, obj) # Call unbound method with explicit self
      r aise EOFError
   File "C:\Python26\lib\pickle.py", line 649, in save_dict
  EOFError
      self._batch_setitems(obj.iteritems())
    File "C:\Python26\lib\pickle.py", line 681, in _batch_setitems
      save(v)
    File "C:\Python26\lib\pickle.py", line 286, in save
      f(self, obj) # Call unbound method with explicit self
    File "C:\Python26\lib\multiprocessing\forking.py", line 40, in dispatcher
      self.save_reduce(obj=obj, *rv)
    File "C:\Python26\lib\pickle.py", line 401, in save_reduce
      save(args)
    File "C:\Python26\lib\pickle.py", line 286, in save
      f(self, obj) # Call unbound method with explicit self
    File "C:\Python26\lib\pickle.py", line 548, in save_tuple
      save(element)
    File "C:\Python26\lib\pickle.py", line 331, in save
      self.save_reduce(obj=obj, *rv)
    File "C:\Python26\lib\pickle.py", line 419, in save_reduce
      save(state)
    File "C:\Python26\lib\pickle.py", line 286, in save
      f(self, obj) # Call unbound method with explicit self
    File "C:\Python26\lib\pickle.py", line 649, in save_dict
      self._batch_setitems(obj.iteritems())
    File "C:\Python26\lib\pickle.py", line 681, in _batch_setitems
      save(v)
    File "C:\Python26\lib\pickle.py", line 306, in save
      rv = reduce(self.proto)
    File "C:\Python26\lib\multiprocessing\managers.py", line 458, in __reduce__
      return type(self).from_address, \
  AttributeError: type object 'SyncManager' has no attribute 'from_address'
  </code></pre>
  
  <p>I'm testing on both Python 2.6 and 2.7 on Windows 7 and get this same error over and over. Does anybody know what it means?</p>