Fault-Tolerance in Distributed Optimization