RPyC or Remote Python Call, is a transparent and symmetrical python library for remote procedure calls, clustering and distributed-computing.  Here an example from Wikipedia:
import rpyc
conn = rpyc.classic.connect("hostname")  # assuming a classic server is running on 'hostname'
print conn.modules.sys.path
conn.modules.sys.path.append("lucy")
print conn.modules.sys.path[-1]
# a version of 'ls' that runs remotely
def remote_ls(path):
    ros = conn.modules.os
    for filename in ros.listdir(path):
        stats = ros.stat(ros.path.join(path, filename))
        print "%d\t%d\t%s" % (stats.st_size, stats.st_uid, filename)
remote_ls("/usr/bin")
# and exceptions...
try:
     f = conn.builtin.open("/non/existent/file/name")
except IOError:
     pass
To check if the remote server has died after assigning it a job, you can use the ping method of the Connection class.  The complete API is described here.