code: def sendFuture(self, future):
          
          try:
              if shared.getConst(hash(future.callable),
                                 timeout=0):
                  # Enforce name reference passing if already shared
                  future.callable = SharedElementEncapsulation(hash(future.callable))
              self.socket.send_multipart([b"TASK",
                                          pickle.dumps(future,
                                                       pickle.HIGHEST_PROTOCOL)])
          except pickle.PicklingError as e:
              # If element not picklable, pickle its name
              # TODO: use its fully qualified name
              scoop.logger.warn("Pickling Error: {0}".format(e))
              previousCallable = future.callable
              future.callable = hash(future.callable)
              self.socket.send_multipart([b"TASK",
                                          pickle.dumps(future,
                                                       pickle.HIGHEST_PROTOCOL)])
              future.callable = previousCallable
docs: Send a Future to be executed remotely.