Query Custom Post Types by date (custom field) range

I think it’s mainly because of the type parameter. You are probably looking for meta_query. Take a look at the following example from the codex:

$args = array(
   'post_type' => 'my_custom_post_type',
   'meta_key' => 'age',
   'orderby' => 'meta_value_num',
   'order' => 'ASC',
   'meta_query' => array(
       array(
           'key' => 'age',
           'value' => array(3, 4),
           'compare' => 'IN',
       )
   )
 );
 $query = new WP_Query($args);

I’m not 100% sure how to add a meta_query using $query->set, but you should be able to do the following:

$meta_query = array(
    array(
        'key' => 'date_start',
        'value' => '20140520',
        'compare' => '>=',
        'type' => 'NUMERIC'
    )
);

$query->set('orderby', 'meta_value_num');  
$query->set('meta_key', 'date_start');  
$query->set('order', 'ASC');
$query->set('meta_query', $meta_query);