Load shedding is currently implemented in two ways. In the first, manual load shedding is performed, where transmission system operators, using estimates, inform distribution utilities of predicted stressful conditions and request dispatch of reserves and then emergency load shedding. In the second manner, automatic load shedding is triggered by protection relays as part of under-voltage and under-frequency load shedding schemes. Pre-defined values of load to be shed and the corresponding number of stages are implemented as relay settings. Under-frequency protection relays use only local measurements for decision making. Decision making is done in milliseconds plus breaker time. However, in the new smart grid paradigm, where system dynamics are much faster due to increasing renewable resources penetration, in some operating conditions, traditional under-frequency load shedding schemes can generate sub-optimal solutions during events leading to islanding of the transmission grid. Although phasor measurement units provide a source of information which can be useful for this problem, centralized solutions for automatic load shedding require total processing times which are not acceptable for real-life implementation. In this work, a bi-level linear programming model is presented. The model is implemented in a distributed architecture leveraging phasor measurement unit data. The upper-level model estimates the current system state. Results of this model are embedded in a lower-level model which leverages predictive estimates of load shedding alternatives to determine the location and load value to be shed. The proposed solution is easy-to-implement and demonstrates high potential for real-world applications.