Advanced Custom Fields Query with Different Values of the Same Key

One option is to fetch all of the posts to a single array and filter that array 50 ways. This would only generate the one query:

$posts = get_posts(array(
      'posts_per_page'  => -1,
      'post_type'     => 'school'
    ));

To filter your array you would do something like this:

$this_state = "Texas";
$state_posts = array_filter($posts, function($results) use($this_state) {
                            return $results['state'] == $this_state;
                            }); 

From there, $state_posts should contain a subset of $posts where the State is Texas. Modify appropriately for each of your 50 groups.

This is untested but modeled on a very similar template I wrote last week.