Computation offloading has been widely used to improve the energy consumption and completion time for standalone apps in mobile-cloud platforms. However, existing approaches have not been designed for distributed mobile-cloud apps and, thus, they are unable to provide effective solutions for such apps that have job and device dependencies, specific to their distributed nature. This paper presents CASINO, a dynamic and collaborative computation offloading framework which employs distributed profiling, decision making, and job execution to achieve an optimized completion time of the distributed computation. CASINO's main component is its job scheduler that works in real-time and considers the global resource conditions and job/device dependencies in order to generate an optimized job schedule for a distributed app. We validated this scheduler by using simulated albeit realistic data. We also built a prototype of CASINO and evaluated it using a proof-of-concept distributed app. The results show that CASINO can significantly improve the computation latency when compared to solutions that execute all offloadable jobs on mobile devices or in the cloud.