pre_get_posts – Trying to get property of non-object warning

$screen may not be available yet when pre_get_posts fires. Try this instead:

public function my_post_type_default_sort( $query ){
    if(!isset($_GET['orderby']) && is_admin()) {
        $orderby = '0';
    }
    if($query->is_main_query() && is_admin() && is_post_type_archive('my_post_type') && $orderby=0) {
        $query->set('orderby','scr_date');
        $query->set('order', 'ASC');
    }
}