title: Python multiprocess does not update object attributes
body: <p>Quite new with Python and I am not sure to understand this use case. Why isn't my data updated ? I checked that the object <code>data</code> is everywhere the same (same memory location) but its attributes are not updated.</p>
  
  <p>Code sample</p>
  
  <pre><code>from multiprocessing import Process
  
  
  class Data(object):
      def __init__(self):
          self.val1 = 0
          self.val2 = 0
          self.val3 = 0
          self.val4 = 0
  
  
  class Test(object):
      def __init__(self, data):
          self.data = data
  
      def update_val1(self):
          self.data.val1 = 1
  
      def update_val2(self):
          self.data.val2 = 2
  
      def update_val3(self):
          self.data.val3 = 3
  
      def update_val4(self):
          self.data.val3 = 4
  
  
  data = Data()
  test = Test(data)
  jobs = []
  
  p = Process(target=test.update_val1)
  jobs.append(p)
  p.start()
  
  p = Process(target=test.update_val2)
  jobs.append(p)
  p.start()
  
  p = Process(target=test.update_val3)
  jobs.append(p)
  p.start()
  
  p = Process(target=test.update_val3)
  jobs.append(p)
  p.start()
  
  for job in jobs:
      job.join()
  
  print(data.val1)
  print(data.val2)
  print(data.val3)
  print(data.val4)
  </code></pre>
  
  <p>I think this is not a good approach and I better pass <code>data</code> object in a queue to share this object between processes is that right ? But the <code>data</code> object is the same in each process, not a copy, so I am confused why it does not work.....</p>