title: Work with NSManagedObject in different threads via MagicalRecords
body: <p>I create entity Artist in main thread,
  then pass it in background thread and associate with entity Album.</p>
  
  <p><strong>How to do it correctly?</strong></p>
  
  <pre><code>- (IBAction)add:(id)sender
  {
      Artist *artist = [Artist MR_createEntity];
      artist.title = @"Eminem";
  
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^{
          // here a large calculation
          Album *album = [Album MR_createEntity];
          album.title = @"Album 1";
          [artist setAlbums:[NSSet setWithArray:@[album]]];
  
          dispatch_async(dispatch_get_main_queue(),^{
              [artist.managedObjectContext MR_saveToPersistentStoreAndWait];
          });
      });
  }
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>MagicalRecordTest[2008:1803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Illegal attempt to establish a relationship 'albums' between objects in different contexts (source = &lt;Artist: 0x15eaa2d0&gt;
  </code></pre>