async def METHOD_NAME(self, df, tasks):
    from vaex.encoding import Encoding
    encoder = Encoding()
    msg_id = str(uuid.uuid4())
    self._msg_id_to_tasks[msg_id] = tuple(tasks)
    task_specs = encoder.encode_list("task", tasks)
    msg = {'command': 'execute', 'df': df.name, 'state': df.state_get(), 'tasks': task_specs}
    try:
        results, encoding = await self._send_async(msg, msg_id=msg_id)
        results = encoding.decode_list('vaex-task-result', results)
        return results
    finally:
        del self._msg_id_to_tasks[msg_id]
        pass