Reduce dist func round trips to 1 per engine.

This is based off of PR #379

Reduce the number of roundtrips for distributed ufuncs to 1 per roundtrip.