Faits :
Le 27 avril 2016, vers 23h30, un client du chauffeur de taxi B._, qui avait refusé de payer sa course, est monté dans le taxi de A._, stationné à proximité du bar " La Habana ", à Fribourg, en lui demandant de partir immédiatement sous prétexte qu'un tiers voulait s'en prendre à lui. Au même moment, B._ est arrivé et a tapé sur la vitre du taxi pour lui expliquer la situation. A._ a alors démarré et a roulé sur le Square des Places, à la vitesse du pas, jusqu'à l'arrêt de bus se trouvant avant l'intersection avec la rue de l'Abbé-Bovet, tandis que B._ marchait à ses côtés en tentant de dialoguer avec lui. Profitant du fait que A._ s'était immobilisé pour laisser passer le bus, B._ s'est placé à l'avant gauche du taxi pour l'empêcher de poursuivre sa route. Il s'est retrouvé sur le capot du véhicule lorsque A._ a redémarré après être sorti deux fois de son véhicule pour tenter de l'écarter, pour s'engager dans la rue de l'Abbé-Bovet à une vitesse d'au moins 20 à 30 km/h. Après avoir parcouru une cinquantaine de mètres, A._ s'est arrêté, permettant ainsi à B._ de descendre du capot, avant de faire marche arrière à une vitesse d'au moins 20 km/h pour retourner sur le Square des Places. B._ a souffert de douleurs à la nuque et au dos.
Par jugement sur opposition du 3 avril 2017, le Juge de police de l'arrondissement de la Sarine a reconnu A._ coupable de violation grave des règles de la circulation routière à raison de ces faits et l'a condamné à une peine de travail d'intérêt général de 360 heures avec sursis pendant deux ans et à une amende de 500 francs. La Cour d'appel pénal du Tribunal cantonal a confirmé ce jugement au terme d'un arrêt non contesté rendu le 29 octobre 2018.
Le 14 février 2019, la Commission des mesures administratives en matière de circulation routière de l'Etat de Fribourg a prononcé le retrait du permis de conduire de A._ pour une durée de six mois, s'agissant d'une infraction grave commise dans les cinq ans après une infraction moyennement grave aux règles de la circulation routière.
La IIIe Cour administrative du Tribunal cantonal de l'Etat de Fribourg a confirmé cette décision sur recours de l'intéressé par arrêt du 18 juillet 2019.
Agissant par la voie du recours en matière de droit public, A._ demande au Tribunal fédéral d'annuler cet arrêt ainsi que la décision de la Commission cantonale des mesures administratives en matière de circulation routière du 14 février 2019 et conclut au prononcé d'une mesure ne dépassant pas un retrait de son permis de conduire d'un mois. Il requiert l'assistance judiciaire gratuite et l'allocation d'une équitable indemnité.
Il n'a pas été ordonné d'échange d'écritures.

Considérant en droit :
1.
La voie du recours en matière de droit public, au sens des art. 82 ss de la loi sur le Tribunal fédéral (LTF; RS 173.110), est ouverte contre une décision rendue en dernière instance cantonale au sujet d'une mesure administrative de retrait du permis de conduire. Le recourant a pris part à la procédure de recours devant la III e Cour administrative. Il est particulièrement atteint par l'arrêt attaqué, qui confirme le retrait de son permis de conduire pour une durée de six mois, et peut se prévaloir d'un intérêt digne de protection à obtenir son annulation et le prononcé d'une mesure de retrait du permis n'excédant pas un mois. Sa qualité pour recourir au sens de l'<ref-law> ne prête pas à discussion. Le recours a été formé en temps utile (<ref-law>) et les conclusions prises sont recevables (<ref-law>).
2.
Le recourant reproche à la cour cantonale d'avoir omis de prendre en considération des faits pertinents retenus par le Juge de police dans son jugement du 3 avril 2017 et repris par la Cour d'appel pénal dans son arrêt du 29 octobre 2018 pour apprécier la gravité de la faute commise. Eu égard aux circonstances particulières du cas, à sa bonne réputation et à son besoin professionnel du permis de conduire, le Tribunal cantonal aurait dû faire application de l'art. 16a al. 1 let. a de la loi fédérale sur la circulation routière (LCR; RS 741.01) et prononcer un retrait du permis d'un mois.
2.1. La loi fédérale sur la circulation routière distingue les infractions légères, moyennement graves et graves. Selon l'<ref-law>, commet une infraction légère la personne qui, en violant les règles de la circulation, met légèrement en danger la sécurité d'autrui alors que seule une faute bénigne peut lui être imputée. Commet en revanche une infraction grave selon l'<ref-law> la personne qui, en violant gravement les règles de la circulation, met sérieusement en danger la sécurité d'autrui ou en prend le risque. Entre ces deux extrêmes, se trouve l'infraction moyennement grave, soit celle que commet la personne qui, en violant les règles de la circulation, crée un danger pour la sécurité d'autrui ou en prend le risque (<ref-law>). Le législateur conçoit cette dernière disposition comme l'élément dit de regroupement: elle n'est ainsi pas applicable aux infractions qui tombent sous le coup des art. 16a al. 1 let. a et 16c al. 1 let. a LCR. Dès lors, l'infraction est toujours considérée comme moyennement grave lorsque tous les éléments constitutifs qui permettent de la privilégier comme légère ou au contraire de la qualifier de grave ne sont pas réunis. Tel est par exemple le cas lorsque la faute est grave et la mise en danger bénigne ou, inversement, si la faute est légère et la mise en danger grave (<ref-ruling> consid. 3.2 p. 452). Ainsi, par rapport à une infraction légère, où tant la mise en danger que la faute doivent être légères, on parle d'infraction moyennement grave dès que la mise en danger ou la faute n'est pas légère, alors qu'une infraction grave suppose le cumul d'une faute grave et d'une mise en danger grave (cf. <ref-ruling> consid. 2.2.3 p. 141; arrêts 1C_144/2018 du 10 décembre 2018 consid. 2.2 et 1C_525/2012 du 24 octobre 2013 consid. 2.1).
Il y a création d'un danger sérieux pour la sécurité d'autrui au sens de l'<ref-law> non seulement en cas de mise en danger concrète, mais déjà en cas de mise en danger abstraite accrue; la réalisation d'un tel danger s'examine en fonction des circonstances spécifiques du cas d'espèce (<ref-ruling> consid. 1.3 p. 512; <ref-ruling> consid. 3.1 p. 96; arrêt 1C_592/2018 du 27 juin 2019 consid. 3.1). Sur le plan subjectif, l'<ref-law>, dont la portée est identique à celle de l'<ref-law>, exige un comportement sans scrupules ou gravement contraire aux règles de la circulation, c'est-à-dire une faute grave et, en cas d'acte commis par négligence, à tout le moins une négligence grossière (ATF <ref-ruling> consid. 3.1 p. 96; <ref-ruling> consid. 3.2 p. 136; arrêt 1C_442/2017 du 26 avril 2018 consid. 2.1). Cette condition est réalisée si l'auteur est conscient du danger que représente sa manière de conduire ou si, contrairement à ses devoirs, il ne tient absolument pas compte du fait qu'il met en danger les autres usagers, c'est-à-dire s'il agit avec une négligence inconsciente. Dans un tel cas, il faut toutefois faire preuve de retenue. Une négligence grossière ne peut être admise que si l'absence de prise de conscience du danger créé pour autrui est particulièrement blâmable ou repose elle-même sur une absence de scrupules (ATF <ref-ruling> consid. 3.2 p. 136). Plus la violation de la règle de la circulation est objectivement grave, plus on admettra l'existence d'une absence de scrupules, sauf indice particulier permettant de retenir le contraire (ATF <ref-ruling> consid. 3.1 p. 96).
2.2. En principe, l'autorité administrative statuant sur un retrait du permis de conduire ne peut pas s'écarter des constatations de fait d'un jugement pénal entré en force. La sécurité du droit commande en effet d'éviter que l'indépendance du juge pénal et du juge administratif ne conduise à des jugements opposés, rendus sur la base des mêmes faits. L'autorité administrative ne peut s'écarter du jugement pénal que si elle est en mesure de fonder sa décision sur des constatations de fait inconnues du juge pénal ou qui n'ont pas été prises en considération par celui-ci, s'il existe des preuves nouvelles dont l'appréciation conduit à un autre résultat, si l'appréciation à laquelle s'est livré le juge pénal se heurte clairement aux faits constatés ou si le juge pénal n'a pas élucidé toutes les questions de droit, en particulier celles qui touchent à la violation des règles de la circulation (<ref-ruling> consid. 3.2 p. 101). Si les faits retenus au pénal lient en principe l'autorité et le juge administratifs, il en va différemment des questions de droit, en particulier de l'appréciation de la faute et de la mise en danger (arrêt 1C_202/2018 du 18 septembre 2018 consid. 2.2), sous réserve des cas où elles dépendent étroitement de faits que le juge pénal connaît de manière plus approfondie que l'autorité administrative, notamment lorsque le jugement pénal a été rendu au terme d'une procédure publique ordinaire au cours de laquelle les parties ont été entendues et des témoins interrogés (<ref-ruling> consid. 3.1 p. 451; arrêt 1C_453/2018 du 22 août 2019 consid. 2.1).
2.3. En l'occurrence, la cour cantonale a tenu pour établi, sur la base du jugement pénal d'appel, que le recourant avait délibérément mis son véhicule en mouvement alors qu'un tiers se trouvait sur l'avant gauche de celui-ci et qu'il avait roulé avec cette personne sur le capot sur une cinquantaine de mètres, avant qu'elle ne puisse en descendre. Il avait encore effectué une marche arrière à une vitesse d'au moins 20 km/h afin de rejoindre son point de départ. Par son comportement inadmissible au volant, il avait à l'évidence créé un danger sérieux pour la sécurité de son concurrent dès lors qu'il existait un risque concret que celui-ci tombe et se blesse, voire qu'il se fasse écraser. Il avait également mis en danger de manière accrue les autres usagers de la route, qu'il s'agisse de piétons ou d'autres conducteurs de véhicules, en circulant de nuit et avec une visibilité considérablement altérée par la présence d'un homme sur le capot de son véhicule, puis en reculant, de surcroît sur une route étroite de la ville. Dans ces conditions, le fait qu'il n'y ait pas eu de blessé relevait du pur cas fortuit qui ne saurait profiter au recourant, la création d'un danger sérieux pour la sécurité d'autrui étant au demeurant déjà donnée en cas de mise en danger abstraite accrue. La condition objective que constitue une mise en danger sérieuse au sens de l'<ref-law> était en l'espèce réalisée.
La cour cantonale a par ailleurs considéré qu'en circulant avec une personne sur la capot de son taxi, le recourant avait fait preuve d'un comportement sans scrupule, gravement contraire aux règles de la circulation et particulièrement blâmable, si bien que la faute commise devait être qualifiée de grave. On ne saurait retenir à sa décharge qu'il aurait agi par peur de l'autre conducteur de taxi. Il ressortait en effet du jugement pénal que ce dernier ne l'avait pas menacé physiquement et que le recourant était même sorti de son véhicule afin de le dégager de sa voiture. Au vu du déroulement des faits, A._ était en tous les cas malvenu de prétendre que tout autre conducteur placé dans les mêmes circonstances aurait agi de la sorte. La condition subjective de la faute grave, telle qu'exigée à l'<ref-law>, était ainsi également remplie.
2.4. Le recourant ne conteste pas avoir circulé de nuit au volant de son taxi sur une cinquantaine de mètres avec un homme sur le capot. Ce seul constat suffit à considérer qu'il a sérieusement mis en danger la sécurité d'autrui ou qu'il en a pris le risque, au sens de l'<ref-law>, et ce, quand bien même il ne circulait qu'à une vitesse de l'ordre de 20 à 30 km/h (cf. arrêt 6B_260/2012 du 19 novembre 2012 consid. 3.2.2). Il importe peu que B._ n'a pas souffert de blessures plus graves que des douleurs à la nuque et au dos ou que le recourant n'ait pas heurté un autre usager de la route alors qu'il circulait avec la vue altérée par la présence d'une personne sur son capot dans la mesure où une mise en danger abstraite accrue suffit selon la jurisprudence.
Par ailleurs, le recourant était conscient de la présence de B._ sur le capot de son véhicule. En roulant malgré tout sur une cinquantaine de mètres, il a adopté un comportement dont le caractère dangereux ne pouvait lui échapper et dont il était conscient selon les faits retenus par les juges d'appel puisqu'il a admis ne pas avoir roulé trop vite pour éviter de faire tomber B._. Il ne peut faire valoir aucune circonstance particulière qui permettrait d'appréhender son comportement de manière plus clémente ou qui ferait apparaître la faute moins grave. Il se prévaut à cet égard en vain du fait qu'il était effrayé et qu'il faisait l'objet d'une tentative de contrainte de la part de B._, l'empêchant d'exercer son activité professionnelle. Les juges d'appel ont certes admis que le recourant avait pu être surpris par l'apparition soudaine de B._ aux abords de son taxi alors qu'un client venait d'y prendre place en alléguant qu'un tiers voulait s'en prendre à lui; ils n'ont en revanche pas retenu qu'il avait redémarré pour s'engager sur la rue de l'Abbé-Bovet parce qu'il était effrayé. La cour cantonale a également fait sienne cette appréciation au motif que l'autre chauffeur de taxi n'avait pas menacé le recourant physiquement et que ce dernier était même sorti de son véhicule pour tenter de l'écarter de son véhicule. Le recourant ne conteste pas ces faits ni leur aptitude à retenir qu'il n'était pas effrayé lorsqu'il a redémarré et roulé une cinquantaine de mètres avec B._ sur son capot. Il n'invoque aucun élément méconnu des autorités pénales et administratives qui permettrait d'admettre qu'il aurait agi par peur. Pour le surplus, le recourant n'a jamais excipé d'une prétendue tentative de contrainte pour expliquer son comportement, que ce soit devant les autorités pénales ou administratives. La recevabilité de cet argument nouveau devant le Tribunal fédéral peut rester indécise car il ne permettrait de toute manière pas d'atténuer la gravité de la faute commise par le recourant. Ce dernier reproche enfin à tort à la cour cantonale d'avoir retenu que B._ avait sauté sur le capot de sa voiture pour éviter d'être renversé alors qu'il avait agi de la sorte pour l'empêcher de quitter les lieux. Ce fait ne ressort en effet ni de l'arrêt attaqué ni du prononcé d'appel, sur lequel s'est fondée la cour cantonale, mais du jugement du Juge de police. Il n'est au demeurant pas pertinent pour apprécier la gravité de la faute commise par le recourant.
En outre, en procédant de nuit à une marche arrière dans une rue étroite, le recourant a adopté un comportement dont le caractère manifestement dangereux ne pouvait lui échapper et qui ne pouvait s'expliquer par un danger imminent comme l'ont retenu les juges d'appel. Il y a donc là, à tout le moins, une négligence grossière de sa part.
Cela étant, la IIIe Cour administrative n'a pas violé le droit fédéral en considérant que les éléments constitutifs d'une infraction grave au sens de l'<ref-law> étaient réunis. Pour le surplus, le recourant ne conteste pas que, dans cette hypothèse, son permis de conduire devait lui être retiré pour une durée incompressible de six mois au minimum selon les art. 16 al. 3 et 16c al. 2 let. b LCR, étant donné qu'il s'est vu retirer son permis en raison d'une infraction moyennement grave au cours des cinq ans précédents.
3.
Le recours doit ainsi être rejeté selon la procédure simplifiée prévue par l'<ref-law>, ce qui rend sans objet la requête d'effet suspensif dont il est assorti. Les conclusions du recourant étant vouées à l'échec, la demande d'assistance gratuite doit être rejetée (<ref-law>). Vu sa situation financière défavorable attestée par pièces, le présent arrêt sera rendu sans frais (art. 66 al. 1, 2 ème phrase, LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire est rejetée.
3.
Il n'est pas perçu de frais judiciaires.
4.
Le présent arrêt est communiqué au recourant, ainsi qu'à la Commission des mesures administratives en matière de circulation routière et à la IIIe Cour administrative du Tribunal cantonal de l'Etat de Fribourg.
Lausanne, le 30 septembre 2019
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Chaix
Le Greffier : Parmelin