DelayedJob tries to serialize the object you are calling the method on.
In your case, that object has an IO and also a Proc object. Both of them are not compatible with serialization. Best thing you can do is writing a simple wrapper that has no dependencies and initializes all the stuff inside the method-call.